During development of a software program in a data processing system, numerous techniques are open implemented to analyze the functionality and efficiency of the software program. A commonly used technique inserts a breakpoint in the software program to signal the data processing system to interupt current execution of the software program at a predetermined point. In a data processing system, a value of a breakpoint is typically defined by the user and stored in a breakpoint register. The breakpoint register generally receives an address from an address bus and then compares the address with the contents of the breakpoint register. If the received breakpoint address of a corresponding breakpoint address range and the contents of the breakpoint register match, a signal is sent to a central processing unit in the data processing system and an exception processing routine specified by the user of the system is typically executed. For example, the user of the system may specify that the internal registers of the data processor be displayed every time a breakpoint signal is encountered.
Because many data processing systems have a breakpoint function integrated within the system, a significant amount of circuit area must be dedicated to this function. The added circuitry associated with the breakpoint function is typically complex and requires a large amount of circuit area. Generally, breakpoint values are stored in breakpoint registers through either hardware implementations external to the data processing system or circuitry integrated within the data processing system. A breakpoint function which is implemented with hardware external to the data processing system generally provides a response which is too slow for most applications. A breakpoint function which is implemented with internal logic circuitry provides a quicker response than the externally implemented breakpoint function, but adds a significant amount of logic circuitry to the data processing system. For example, both driver circuitry and decode logic must be implemented for each bit of the breakpoint register. If a single breakpoint register is thirty-two bits wide, the circuitry associated with the breakpoint function increases significantly if more than one breakpoint is implemented in the system. If the circuitry of a data processing system is too dense and complex, limitations due to a fixed circuit area might even preclude the breakpoint capability in the data processing system.
In many data processing systems designs, both area limitations and growing circuit complexities are primary concerns. Therefore, a system designer must often choose between the convenience of breakpoints during system evaluation and the limitations of a fixed circuit area.